# Script para replica��o

# Instalando pacotes
install.packages("tidyverse")
install.packages("ggplot2")
install.packages("lmtest")
install.packages("dplyr")
install.packages("car")
install.packages("arm")
install.packages("XML")
install.packages("faraway")
install.packages("psych")
install.packages("sandwich")

library(tidyverse)
library(lmtest)
library(car)
library(ggplot2)
library(dbplyr)
library(arm)
library(XML)
library(faraway)
library(psych)
library(sandwich)



# Ajustando diret�rio do banco de dados

setwd("C:/Users/DELL/Desktop/An�lise de Dados")
getwd()
# Importando dados

bd <- read.table("erick-vieira-bd-tf-ad-ufpe-2018.txt", h=T,colClasses = c(rep("numeric",4),"numeric","numeric","numeric"))
bd                            
View(bd)

#Vari�veis do banco
names(bd)

# Verificando vari�veis
str(bd)


# An�lise explorat�ria dos dados
summary(bd)
head(bd)
var(bd)
cov(bd) 
cor(bd) 

# Teste de hip�tese para o Coeficiente de Correla��o
cor.test(bd$ajuda,bd$membrobrbm)

# Executando Diagrama de Dispers�o    
plot(bd$membrobrbm,bd$ajuda)            
abline(bd$membrobrbm,bd$ajuda) # Exibindo linha de tend�ncia

# Gr�ficos descritivos das vari�veis
hist(bd$ajuda, main = 'Histograma Ajuda')
hist(bd$membrobrbm, main = 'Histograma Membrobrbm')
hist(bd$percapita, main = 'Histograma Per Capita')
hist(bd$viaof, main = 'Histograma Viaof')



#--------------------MODELO-------------

# Modelo: regress�o linear m�ltipla = VD e VI + Controles (Semi log)
lm <- lm(data = bd, log(ajuda) ~ factor(membrobrbm) + viaof + log(percapita))

# Visualizando coeficientes do modelo
summary(lm)

# Construindo tabela de an�lise da vari�ncia
anova(lm)

# Construindo intervalos de confian�a para os coeficientes da regress�o
confint(lm)

# Verificando demais pressupostos do modelo
# Checando normalidade dos Res�duos
# M�todo 1) Construindo histograma de res�duos
hist(residuals(lm))

# M�todo 2) Checando suposi��o de normalidade dos erros por gr�fico de "Probabilidade Normal de Res�duos"
windows()
qqnorm(residuals(lm), ylab="Res�duos",xlab="Quantis te�ricos",main="")
qqline(residuals(lm))

# Checando heterocedasticidade
plot(lm, which = 1)

# Checando multicolinearidade
require(faraway)
vif(lm) 

# Corrigindo heterocedasticidade com estimador White-Huber
coeftest(lm,vcov. = vcovHC)

